package com.shallow.universe.process.model;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * The type ShallowProcess.
 * <p>
 * comment：流程定义
 *
 * @author Guo Shuai
 * @version 1.0.0
 * @date 2021-12-30 14:31:25
 */
@Data
@ApiModel(value = "Process对象", description = "流程定义")
@TableName(value = "easy_process")
@Accessors(chain = true)
public class Process implements Serializable {

    // fields start
    /**
     * 主键
     */
    @TableId(value = "SID", type = IdType.AUTO)
    @ApiModelProperty(value = "主键", notes = "字符长度为：19")
    private Long sid;
    /**
     * 标题
     */
    @TableField(value = "TITLE")
    @ApiModelProperty(value = "标题", notes = "字符长度为：100")
    private String title;
    /**
     * 描述
     */
    @TableField(value = "DESCRIPTION")
    @ApiModelProperty(value = "描述", notes = "字符长度为：255")
    private String description;
    /**
     * 模式
     */
    @TableField(value = "BACK_MODE")
    @ApiModelProperty(value = "退回模式", notes = "字符长度为：10")
    private Integer backMode;
    /**
     * 模式
     */
    @TableField(value = "RECEIVE_USER")
    @ApiModelProperty(value = "抄送用户", notes = "字符长度为：10")
    private String receiveUser;
    /**
     * 创建时间
     */
    @TableField(value = "CREATED", fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间", notes = "字符长度为：19")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date created;
    /**
     * 更新时间
     */
    @TableField(value = "LAST_UPDATED", fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新时间", notes = "字符长度为：19")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastUpdated;

    /**
     * 设计
     */
    @ApiModelProperty(value = "设计")
    @TableField(exist = false)
    private List<ProcessDesign> processDesigns;
}
